package org.jet.emall.prod.service;

import org.jet.emall.common.restful.result.CommonPage;
import org.jet.emall.prod.dto.BrandDTO;
import org.jet.emall.prod.dto.BrandDetailsDTO;
import org.jet.emall.prod.dto.NewBrandDTO;
import org.jet.emall.prod.dto.UpdateBrandDTO;

import java.util.List;

/**
 * @author xiaozai
 * @version 1.0
 * @date 2020-04-16 12:25
 */
public interface CustomBrandService {
    /**
     *  分页查找品牌
     * @param query
     * @param pageNum
     * @param pageSize
     * @return
     */
    CommonPage<BrandDTO> page(String query, Integer pageNum, Integer pageSize);

    /**
     *  关键字搜索品牌
     * @param query
     * @return
     */
    List<BrandDTO> query(String query);

    /**
     *  获取分类的品牌列表
     * @param cate3Id
     * @return
     */
    List<BrandDTO> list(Integer cate3Id);

    /**
     *  更新品牌的状态
     * @param id
     * @param status
     */
    void update(Integer id, Byte status);

    /**
     *  保存新品牌
     * @param dto
     */
    void saveBrand(NewBrandDTO dto);

    /**
     *  删除品牌
     * @param ids
     */
    void deleteBrands(List<Integer> ids);

    /**
     *  更新品牌
     * @param brandDTO
     */
    void updateBrand(UpdateBrandDTO brandDTO);

    /**
     *  获取品牌详情
     * @param id
     * @return
     */
    BrandDetailsDTO getBrandDetails(Integer id);

    /**
     *  删除品牌的分类
     * @param brandId
     * @param cateId
     */
    void deleteCate(Integer brandId, Integer cateId);

    /**
     *  给品牌添加分类
     * @param brandId
     * @param cateId
     */
    void addCate(Integer brandId, Integer cateId);
}
